<?php
/**
 * Page css.php où arrivent toutes les requêtes CSS
 * Cette page vérifie les paramètres pour apeller :
 *  - le fichier de cache
 *  - le bon fichier de css
 * @author Mickaël CASTANHEIRO
 * @version 2.0.1
 */
/*
 * Style d'encodage pour l'affichage
 */
header('Content-type: text/javascript; charset=utf-8');

/*
 * Realpath
 */
define('__PATH__', realpath('.'));
define('APPLICATION_ENV', 'dev');

/*
 * Contrôleur requis
 */
require 'lib/cass/Data.class.php';
use \cass\Data;

// Si le css demandé est correct
if (preg_match('!/' . Data::directories('relative_uri') . '(?P<composites>[,-_\w]+)(?:\.php.js)!', $_SERVER['REQUEST_URI'], $matches)) {
   $cacheFile = __PATH__ . Data::directories('cache') . 'js/' . $matches['composites'] . Data::extensions('cache');

    // Fichier de cache
    if (!file_exists($cacheFile) OR (APPLICATION_ENV == 'dev') ) {
       
        ob_start();
        $matches = explode(',', str_replace('__', '/', $matches['composites']));
        $matches = array_merge(array('cass'), $matches);
        foreach ($matches AS $js) {
            $jsFile = __PATH__ . Data::directories('web') . 'js/' . $js . Data::extensions('js');
            if ( file_exists($jsFile) ) {
                require $jsFile;
            }
        }

        $content = ob_get_contents();
        ob_end_clean();

        // Optimisation
        $content = str_replace('	', '', $content);

        // En cache
        file_put_contents($cacheFile, $content);
    }
     require $cacheFile;
}
